package org.lmind.brick.service.store;

import java.io.InputStream;

/**
 * 可以存储文件的仓库
 * @author 刘勉
 *
 */
public interface FileStore {

	/**
	 * 将文件数据流存入仓库
	 * @param input 文件数据流
	 * @param originName 文件原始名称，可以为null
	 * @return 随机生成的代表此文件的标识
	 */
	String store(InputStream input, String originName);
	
	/**
	 * 从仓库中删除文件
	 * @param key 文件的标识
	 */
	void remove(String key);
	
	/**
	 * 根据文件的标识，返回此文件的元数据
	 * @param key 文件的标识
	 * @return 元数据
	 */
	FileMetadata getMetadata(String key);

}